package com.catmiao.sql;


import org.apache.spark.rdd.RDD;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Encoders;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import scala.Serializable;


/**
 * 模型对象的访问
 */
public class Spark06_Model_visit implements Serializable {

    public static void main(String[] args) {

        // 构建SparkSQL的环境对象时，一般采用构建器模式
        // 构造器模式：构建对象
        SparkSession sparkSession = SparkSession
                .builder()
                .master("local[*]")
                .appName("SparkSQL")
                .getOrCreate();


        Dataset<Row> dataset = sparkSession.read().json("datas/sql/user.json");

        // TODO 模型对象的访问
        //      将数据模型转换为二维的结构【行、列】，可以通过SQL文进行访问
        //      视图：是表的查询结果集，表可以增加、修改、删除、查询；视图只能查询
        dataset.createOrReplaceTempView("user");


        // TODO 当前JDK版本不适合开发SQL
        sparkSession.sql("select * from user").show();


        sparkSession.close();
    }

}


